1. Field of the Invention
This invention pertains generally to methods of communication and, more particularly, to such methods employing a plurality of communication layers and communication buffers. The invention also relates to a communicating node including a plurality of communication layers and communication buffers. The invention further relates to a system including a plurality of such communicating nodes.
2. Background Information
In order to better achieve flexibility to carry many different types of information over a single system, communication systems are typically designed with a layered architecture. One example of a general layered architecture for networking protocols and distributed applications is the International Standard Organization's Open System Interconnect (ISO/OSI) model.
The ISO/OSI model comprises a communication system having seven layers, which form a communication path between a first end user and a second end user. The seven layers may be divided into two sets: (1) a set of upper layers; and (2) a set of lower layers. The upper four layers (e.g., transport, session, presentation and application layers) normally reside in application end users. A communication system may, in some cases, be defined by the lower three layers, individually known as the network layer, the data link layer and the physical layer.
Each layer is responsible for specific, defined operations in the communication process between application end users. In furtherance of these operations, each layer may communicate information with the layers above and below it through defined interfaces (although there is not always a definitive separation between layers). Thus, for example, the transport layer may operate independently of the specific operational details of the network layer, the data link layer and the physical layer below it. The set of lower layers thus operates as a transparent data pipeline to an application end user connected to the system at the transport layer interface.
A flow of data occurs between layers, such as may occur during communication between two application end users. Information may be passed between like layers of each end user through a path ultimately connected at the physical layer. The rules that govern how data is passed between like layers at each end user are collectively referred to as a “peer-to-peer protocol”. A variety of different application end users operating with different peer-to-peer protocols may communicate over a communication system so long as each application end user presents the proper upper layer interface to the communication system. Conversely, an application end user may connect with any communication system having a compatible lower layer interface.
Generally, it is common that only a subset of the seven layers are employed within a network or that one or more layers are merged. Each layer employs the services of the layer below it and provides services to the layer(s) above it. Thus, for example, the network layer, which is responsible for establishing and maintaining the flow of messages between connected points in the network, is dependent upon the data link layer to provide, for example, character and message synchronization and error correction. The data link layer is, in turn, dependent upon the physical layer to actually transmit and receive information as electrical or wireless signals on the network.
Communication protocol stacks are often implemented in a layered structure, with each layer providing a certain function or service. This allows some flexibility in the implementation, enables compliance with existing standards and permits a certain degree of customization. This also enables an application to become independent from the communication mechanism and allows relatively faster implementation thereof. Preferably, the layer above accesses a set of services provided by the layer below.
U.S. Patent Application Publication No. 2006/0080455 discloses a buffer management entity (BME) in which communication layers are not responsible for managing the details of assembling and disassembling packets. Instead, the communication layers request (“lease”) the data of the BME in order to reserve it. The BME employs basic operations of request, release and update. The BME includes a buffer manager class and multiple instances of a buffer class. The buffer manager class controls the assignment of individual buffers, while memory usage is independently controlled by each of those buffers. Each of the buffers has sufficient memory to store the largest possible message size handled by the layers of the communication protocol stack. The buffer manager class receives buffer requests from the discrete communication protocol stack layers, searches a list of available buffers for availability, and confirms the acceptance of the buffer request back to the requesting layer. A BME_Manager state handles three types of events: (1) BME_RequestBuffer; (2) BME_ReleaseBuffer; and (3) BME_UpdateBuffer events. The BME_Manager state replies to events from any of the layers with a BME_Buffer Reply event, which is directed to the layer that initiated the request.
A wireless communication protocol stack, for example, has two end goals. The first goal is to transmit packets initiated by the application layer at the top of the stack, and the second goal is to process a number of received packets at the bottommost layer, which received packets may be intended for the topmost application layer. For example, it is a good practice to avoid the exchange of data or services between layers not adjacent to each other.
Most of what a communication protocol stack layer does is to add bytes as headers or trailers in a existing packet (e.g., without limitation, adding a MAC header; adding a CRC to a NWK packet). There is a need, therefore, for such a layer not having to deal with the specifics of adding to or reading from such packets.
Accordingly, there is room for improvement in methods of communication employing a plurality of communication layers and communication buffers.
There is also room for improvement in communicating nodes including a plurality of communication layers and communication buffers.
There is further room for improvement in systems including a plurality of such communicating nodes.